//
// StoreNuke.Net -  http://www.storenuke.net
// Copyright (c) 2005
// by Robert J Collins ( info@storenuke.net ) of WillowTree Software, Inc. ( http://www.willowtreesoftware.com )
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 
// documentation files (the "Software"), to deal in the Software without restriction, including without limitation 
// the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and 
// to permit persons to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or substantial portions 
// of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 
// TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 
// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
// DEALINGS IN THE SOFTWARE.
//

using System;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace StoreNuke.StarterKit.Commerce.StoreControls
{
	/// <summary>
	///		Summary description for __Reviews.
	/// </summary>
	public class __Reviews : StoreControl
	{
		protected Label ModelName;
		protected TextBox Name;
		protected RequiredFieldValidator RequiredFieldValidator1;
		protected TextBox Email;
		protected RequiredFieldValidator RequiredFieldValidator2;
		protected RadioButtonList Rating;
		protected TextBox Comment;
		protected RequiredFieldValidator RequiredFieldValidator3;
		protected System.Web.UI.WebControls.Button ReviewAddBtn;

		private void Page_Load(object sender, EventArgs e)
		{

			if (Page.IsPostBack != true) 
			{

				// Obtain ProductID of Product to Review
				int productID = Int32.Parse(Request["productID"]);
        
				// Populate Product Name on Page
				ProductsDB products = new ProductsDB();
				ModelName.Text = products.GetProductDetails(productID).ModelName;
            
				// Store ProductID in Page State to use on PostBack
				ViewState["productID"] = productID;
			}
		}

		//*******************************************************
		//
		// The ReviewAddBtn_Click event is used to add a new
		// review into the Commerce Starter Kit Reviews database.
		//
		// Note that we are deliberately HtmlEncoding all text
		// values *before* adding them to the database.  This allows
		// us to prevent hackers from adding images or hyperlinks
		// into the message content.
		//
		//*******************************************************

		private void ReviewAddBtn_Click(object sender, EventArgs e) 
		{

			// Only add the review if all fields on the page are valid
			if (Page.IsValid == true) 
			{
              
				// Obtain ProductID from Page State
				int productID = (int) ViewState["productID"];
            
				// Obtain Rating number of RadioButtonList
				int rating = Int32.Parse(Rating.SelectedItem.Value);
             
				// Add Review to ReviewsDB.  HtmlEncode before entry
				ReviewsDB review = new ReviewsDB();
				review.AddReview(productID, Server.HtmlEncode(Name.Text), Server.HtmlEncode(Email.Text), rating, Server.HtmlEncode(Comment.Text));
              
				// Redirect client back to the originating product details page
				Response.Redirect("Default.aspx?scid=4&productID=" + Request.QueryString["productID"].ToString());
			}
		}

		#region Web Form Designer generated code
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: This call is required by the ASP.NET Web Form Designer.
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		///		Required method for Designer support - do not modify
		///		the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{
			this.ReviewAddBtn.Click += new System.EventHandler(this.ReviewAddBtn_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion
	}
}
